//
//  SetPasswordView.swift
//  imprint
//
//  Created by 小柠檬🍋 on 2024/12/26.
//

import SwiftUI

struct AiSetMemoryDescView: View {
    
    var forceShow = false
    @StateObject var viewModel = AiActViewModel()
    @EnvironmentObject var themeManager: ThemeManager
    @State private var isShow = false
    
    var body: some View {
        ZStack{
            contentView
        }.navigationTitle("记忆说明")
            .frame(maxWidth: .infinity)
    }
    
}

extension AiSetMemoryDescView {
    var contentView : some View {
        VStack(alignment: .leading,spacing: 10) {
            Text("记忆提取")
                .font(.system(size: 16))
                .foregroundStyle(.bgBlack)
                .bold()
            Text(highlightAndBoldText(fullText: "开启条件：选中的心灵满足以下任一条件即可触发记忆提取功能", boldTexts: ["开启条件：", "选中的心灵"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "• 累计聊天轮次达到 50 轮", boldTexts: ["50"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "• 已生成的日记数量达到 7 篇", boldTexts: ["7"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "提取限制：为保障使用体验，避免频繁干扰，每个心灵每日仅支持 1 次记忆提取", boldTexts: ["提取限制：","1 次"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "旧数据：旧数据总量较大，将采用每日分批提取的方式处理。", boldTexts: ["旧数据：","每日"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "提取内容：系统将智能筛选并提取过往交互中的重要信息，确保提取内容的价值性与相关性", boldTexts: ["提取内容："], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "提取范围：目前会提取聊天，我的日记，AI日记，暂不支持评论跟来信", boldTexts: ["提取范围："], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "次数消耗：每完成 1 次记忆提取，将扣减 1 次回应次数", boldTexts: ["次数消耗：","1 次"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text("记忆注入")
                .font(.system(size: 16))
                .foregroundStyle(.bgBlack)
                .bold()
                .padding(.top, 10)
            Text(highlightAndBoldText(fullText: "注入场景：场景覆盖日常核心交互，包括日常聊天、日记回复、每周来信等，让过往记忆自然融入每一次互动，无需额外触发", boldTexts: ["注入场景："], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "次数消耗：由于记忆数据可能会相当庞大；聊天等产生的次数由于1次变成n次数，这个次数会根据app政策调整，具体看最下方）", boldTexts: ["次数消耗：","n次"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text(highlightAndBoldText(fullText: "重要提醒：当前 “记忆提取与注入” 功能仍处于测试优化阶段，若您在使用过程中发现记忆效果未达预期（如记忆准确性、关联性不足等），建议及时关闭该功能，以避免不必要的回应次数消耗，保障您的使用体验。", boldTexts: ["重要提醒：","测试优化阶段","关闭该功能"], size: 14))
                .font(.system(size: 14))
                .foregroundStyle(.colorTextSub)
            Text("消耗次数：\(configManager.getConfig().aiChat.aiMemoryCount)")
                .font(.system(size: 16))
                .foregroundStyle(.bgBlack)
                .bold()
                .padding(.top, 20)
            Spacer()
        }.padding(20)
    }
}

//#Preview {
//    SetPasswordView()
//}

//定义预览提供者
struct AiSetMemoryDescView_Previews: PreviewProvider {
    static var previews: some View {
        //使用预览共享配置
        configurePreviewEnvironment(for: AiSetMemoryDescView())
    }
}
